home *** CD-ROM | disk | FTP | other *** search
/ FishMarket 1.0 / FishMarket v1.0.iso / fishies / 501-525 / disk_519 / oaklisp / src.lzh / config.h next >
C/C++ Source or Header  |  1991-06-15  |  3KB  |  172 lines

  1. /*  Copyright (C) 1989, 1988, 1987 Barak Pearlmutter and Kevin Lang */
  2.  
  3. /*
  4.  * This file describes the configuration of the machine that is being
  5.  * compiled on.  It deals with quirks of the CPU, compiler, and OS.
  6.  */
  7.  
  8.  
  9.  
  10. /* I'd love to be able to case things out here: */
  11.  
  12. /* Length of (long).  Must be <= length of (char *). */
  13. #define WORDSIZE 32
  14.  
  15.  
  16. #ifdef AMIGA
  17. #define unix_files
  18. #define MALLOC_STACK_BUFFER 
  19. #define MALLOC_WP_TABLE
  20. #define PROTOTYPES
  21. #define BIG_ENDIAN
  22. #define UNSIGNED_CHARS
  23. #define SIGNALS
  24. #endif
  25.  
  26.  
  27.  
  28. /* Try to figure out the endianity. */
  29.  
  30. #ifdef CMUCS
  31.  
  32. #ifdef BYTE_MSF
  33. #define BIG_ENDIAN
  34. #endif
  35.  
  36. #else /* not CMUCS */
  37.  
  38.  
  39. #ifndef vax        /* cpp on a BSD or ULTRIX vax thinks big endian! */
  40. #ifndef mips        /* as does Ultrix on a DEC 3100. */
  41.  
  42. #ifdef mac
  43. #define BIG_ENDIAN
  44. #endif
  45.  
  46. #ifdef mc68000
  47. #define BIG_ENDIAN
  48. #endif
  49.  
  50. #ifdef sun
  51. #define BIG_ENDIAN
  52. #endif
  53.  
  54. #ifdef convex
  55. #define BIG_ENDIAN
  56. #endif
  57.  
  58. /* Default */
  59. #define BIG_ENDIAN
  60.  
  61. #endif /* not mips */
  62. #endif /* not vax */
  63.  
  64. #endif /* CMUCS */
  65.  
  66. /* This is for gcc with -ansi */
  67. #ifdef __unix__
  68. #define unix
  69. #endif
  70.  
  71.  
  72.  
  73.  
  74. /* UNALIGNED should be defined if malloc() might return a pointer that isn't
  75.    long aligned, ie, whose low two bits might not be 0. */
  76.  
  77. #ifdef mac
  78. #define UNALIGNED
  79. #endif
  80.  
  81.  
  82.  
  83.  
  84.  
  85.  
  86. /* Expand this to include all systems with unsigned chars: */
  87.  
  88. #ifdef ibmrt
  89. #define UNSIGNED_CHARS
  90. #endif
  91.  
  92.  
  93.  
  94.  
  95. /* unix_files is defined if things like ftell() and fseek() are
  96.    around.  For things like fileno() and isatty() we need real unix. */
  97.  
  98. #ifdef Mac_LSC
  99. #define unix_files
  100. #define MALLOC_STACK_BUFFER 
  101. #define MALLOC_WP_TABLE
  102. #define PROTOTYPES
  103. #define CANT_FLUSH_STD
  104. #define mac
  105. #endif
  106.  
  107. #ifdef __STDC__
  108. #define PROTOTYPES
  109. #endif
  110.  
  111.  
  112.  
  113. /* Machines with int's smaller than (char *)'s should not define this. */
  114. #ifndef Mac_LSC
  115. #define BIGINT
  116. #endif
  117.  
  118.  
  119.  
  120.  
  121. #ifdef unix
  122. #define unix_files
  123. #endif
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130. /* The following can be ((x)>>2) on machines with arithmetic right
  131.    shifts of signed numbers.  Regrettably, some machines (like the
  132.    Convex) treat all numbers being shifted as unsigned.  If your
  133.    compiler emits better code for (x>>2) than for (x/4) and does not
  134.    have this weird problem, you should use the definition that is
  135.    commented out. */
  136.  
  137. #define ASHR2(x) ((x)/4)
  138. /* #define ASHR2(x) ((x)>>2) */
  139.  
  140.  
  141.  
  142.  
  143. /* Some machines have a 64 bit variant of long called a "long long",
  144.    which makes multiplication overflow detection easier. */
  145.  
  146. #ifdef convex
  147. #define HAVE_LONG_LONG
  148. #endif
  149.  
  150.  
  151.  
  152. /* Some operating systems support trapping user interrupts. */
  153.  
  154. #ifdef unix
  155. #define SIGNALS
  156. #endif
  157.  
  158.  
  159.  
  160. /* It is possible to use floating point hardware to detect overflows.
  161.    This doesn't seem to be a speed win on any tested system, and is
  162.    therefore commented out.  */
  163.  
  164. #ifndef HAVE_LONG_LONG
  165. /* #define DOUBLES_FOR_OVERFLOW */
  166. #endif
  167.  
  168.  
  169.  
  170.  
  171. /* eof */
  172.